import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.2')

from google.appengine.ext.webapp import template

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainHandler(webapp.RequestHandler):
  def get(self):
    template_values = {}
    path = os.path.join(os.path.dirname(__file__), 'hello.html')
    self.response.out.write(template.render(path, template_values))

class QuizHandler(webapp.RequestHandler):
  def get(self):
    template_values = {'name' : self.request.get('name') }
    path = os.path.join(os.path.dirname(__file__), 'quiz.html')
    self.response.out.write(template.render(path, template_values))
                                        
class GoodbyeHandler(webapp.RequestHandler):
  def get(self):
    self.response.out.write('Goodbye app engine world!')
class WrongAnswer:
  def __init__ (self, question, guess, correct):
    self.question = question
    self.guess = guess
    self.correct = correct

class GradeQuizHandler(webapp.RequestHandler):
  def get(self):
    addition_guess = self.request.get('addition')
    capital_guess = self.request.get('capital')
    template_values = {'wrong_answers' : [], 'name': self.request.get('name')}
    if addition_guess != "7":
      template_values['wrong_answers'].append(WrongAnswer("3 + 4", addition_guess, 7))
    if capital_guess.strip().lower() != 'sacramento':
      template_values['wrong_answers'].append(WrongAnswer("the capital of California", capital_guess, "Sacramento"))
    path = os.path.join(os.path.dirname(__file__), 'grade_quiz.html')
    self.response.out.write(template.render(path, template_values))

class DiceHandler (webapp.RequestHandler):
  def get(self):
    import random

    name = self.request.get("name")
    DICE_ROLLS = self.request.get("rolls")
    self.response.out.write("Hello<br>")
    self.response.out.write("Hello " + 	name +"\n")
    self.response.out.write("Rolling the dice " + str(DICE_ROLLS) + " times <br>")
    for roll_num in range(int(DICE_ROLLS)):
      dice_1 = random.randint(1, 6)
      dice_2 = random.randint(1, 6)
      self.response.out.write("Roll " + str(roll_num+1) + ": "+str(dice_1)+" "+ str(dice_2)+"<br>")
      if dice_1 == dice_2:
        if dice_1 == 1:
          self.response.out.write("Snake Eyes<br>")
        else:
          self.response.out.write( "You got double "+ str(dice_1)+"'s <br>")

def main():
  application = webapp.WSGIApplication([('/hello', MainHandler),
                                      ('/goodbye.*', GoodbyeHandler),
				      ('/quiz', QuizHandler),
                                      ('/grade_quiz', GradeQuizHandler),
                                      ('/dice.*', DiceHandler)],
                                     debug=True)
  run_wsgi_app(application)

if __name__ == '__main__':
  main()

